#ifndef __AW_TRACERBRAIN
#define __AW_TRACERBRAIN

class AW_TracerBrain : public AW_Brain {

public:
	AW_TracerBrain(Ontology *O,FTKBase *Memory);
	AW_TracerBrain(FILE *fp,Ontology *O,FTKBase *Memory);

	virtual ~AW_TracerBrain();

	virtual bool load(FILE *fp);
	virtual bool save(FILE *fp);

	virtual bool is_a(char *c);
	virtual bool is_a(Symbol *c);

	virtual void actualize(float time,float timeinc,
					       List<AW_Message> *message_queue,
						   Symbol *me,
						   List<FeatureTerm> *sensor_data,
						   List<FeatureTerm> *posibles,
						   List<FeatureTerm> *l);

protected:

	virtual void decode_input(float time,float timeinc,
							  Symbol *me,
							  List<FeatureTerm> *sensor_data,
							  List<FeatureTerm> *posibles,
							  List<FeatureTerm> *input_ops);
	virtual bool process_message(AW_Message *m,
								 float time,float timeinc,
							     Symbol *me,
							     List<FeatureTerm> *sensor_data,
							     List<FeatureTerm> *posibles,
							     List<FeatureTerm> *input_ops);
	virtual void generate_ops(float time,float timeinc,
							  Symbol *me,
							  List<FeatureTerm> *sensor_data,
							  List<FeatureTerm> *posibles,
							  List<FeatureTerm> *l);


private:


}; /* AW_TracerBrain */ 

#endif

